package cn.itsub.sodo.action.interval;

import cn.itsub.sodo.Node;
import cn.itsub.sodo.core.types.Vec2;
/**
 * 在规定时间内移动到指定位置
 * @author Mr.Xia@zhenzhigu.com
 * @Date 2016年10月25日
 */
public class MoveTo extends IntervalAction {
	protected Vec2 start=Vec2.zero();
	protected Vec2 end;
	protected Vec2 delta=Vec2.zero();
	public static MoveTo action(float time,float x,float y){
		return new MoveTo(time, x,y);
	}
	protected MoveTo(float time,float x,float y) {
		super(time);
		this.end = Vec2.create(x, y);
	}
	@Override
	public void start(Node aTarget) {
		super.start(aTarget);
		start.set(target.getPosition().x, target.getPosition().y);
		delta.set(end.x-start.x, end.y-start.y);
	}
	@Override
	public void update(float time) {
		this.target.setPosition(start.x+delta.x*time, start.y+delta.y*time);
	}
	
}
